#ifndef __TOUCH_H
#define __TOUCH_H

#include "stm32h7xx_hal.h"
#include "touch_iic.h"
#include "usart.h"

/*------------------------------------ 宏定义 -----------------------------------*/

#define TOUCH_MAX   5	// 最大触点数

typedef struct
{
	uint8_t  flag;			// 触摸标志位，为1时表示有触摸操作
	uint8_t  num;			// 触点个数
	uint16_t x[TOUCH_MAX];	// x坐标
	uint16_t y[TOUCH_MAX];	// y坐标
}TouchStructure;

extern volatile TouchStructure touchInfo;	// 触摸数据结构体变量

/*------------------------------------ 寄存器定义 -----------------------------------*/

#define GT9XX_IIC_RADDR 0xBB			// IIC读取器件地址
#define GT9XX_IIC_WADDR 0xBA

#define GT9XX_CFG_ADDR 	0x8047		// 固件配置信息寄存器首地址起始地址
#define GT9XX_READ_ADDR 0x814E		// 坐标信息寄存器
#define GT9XX_ID_ADDR 	0x8140		// 触摸屏ID寄存器

/*------------------------------------ 函数声明 -----------------------------------*/

uint8_t 	Touch_Init(void);		// 触摸屏初始化
void 		Touch_Scan(void);		// 触摸扫描
void  	GT9XX_Reset(void);	// 执行复位函数
void 		GT9XX_SendCfg(void);	// 发送GT911配置参数
void 		GT9XX_ReadCfg(void);	// 读取GT911配置参数

#endif


